package com.cskaoyan.bean.chaosbean.home;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author dengqwe
 * @datetime 2023/1/1 18:10
 * @description: TODO:
 */
@NoArgsConstructor
@Data
public class CE {

    @JsonProperty("data")
    private DataDTO data;

    @NoArgsConstructor
    @Data
    public static class DataDTO {
        @JsonProperty("newGoodsList")
        private List<NewGoodsListDTO> newGoodsList;
        @JsonProperty("couponList")
        private List<CouponListDTO> couponList;
        @JsonProperty("channel")
        private List<ChannelDTO> channel;
        @JsonProperty("banner")
        private List<BannerDTO> banner;
        @JsonProperty("brandList")
        private List<BrandListDTO> brandList;
        @JsonProperty("hotGoodsList")
        private List<HotGoodsListDTO> hotGoodsList;
        @JsonProperty("topicList")
        private List<TopicListDTO> topicList;
        @JsonProperty("floorGoodsList")
        private List<FloorGoodsListDTO> floorGoodsList;

        @NoArgsConstructor
        @Data
        public static class NewGoodsListDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("name")
            private String name;
            @JsonProperty("brief")
            private String brief;
            @JsonProperty("picUrl")
            private String picUrl;
            @JsonProperty("isNew")
            private Boolean isNew;
            @JsonProperty("isHot")
            private Boolean isHot;
            @JsonProperty("counterPrice")
            private Integer counterPrice;
            @JsonProperty("retailPrice")
            private Integer retailPrice;
        }

        @NoArgsConstructor
        @Data
        public static class CouponListDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("name")
            private String name;
            @JsonProperty("desc")
            private String desc;
            @JsonProperty("tag")
            private String tag;
            @JsonProperty("discount")
            private Integer discount;
            @JsonProperty("min")
            private Integer min;
            @JsonProperty("days")
            private Integer days;
        }

        @NoArgsConstructor
        @Data
        public static class ChannelDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("name")
            private String name;
            @JsonProperty("iconUrl")
            private String iconUrl;
        }

        @NoArgsConstructor
        @Data
        public static class BannerDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("name")
            private String name;
            @JsonProperty("link")
            private String link;
            @JsonProperty("url")
            private String url;
            @JsonProperty("position")
            private Integer position;
            @JsonProperty("content")
            private String content;
            @JsonProperty("enabled")
            private Boolean enabled;
            @JsonProperty("addTime")
            private String addTime;
            @JsonProperty("updateTime")
            private String updateTime;
            @JsonProperty("deleted")
            private Boolean deleted;
        }

        @NoArgsConstructor
        @Data
        public static class BrandListDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("name")
            private String name;
            @JsonProperty("desc")
            private String desc;
            @JsonProperty("picUrl")
            private String picUrl;
            @JsonProperty("floorPrice")
            private Double floorPrice;
        }

        @NoArgsConstructor
        @Data
        public static class HotGoodsListDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("name")
            private String name;
            @JsonProperty("brief")
            private String brief;
            @JsonProperty("picUrl")
            private String picUrl;
            @JsonProperty("isNew")
            private Boolean isNew;
            @JsonProperty("isHot")
            private Boolean isHot;
            @JsonProperty("counterPrice")
            private Integer counterPrice;
            @JsonProperty("retailPrice")
            private Integer retailPrice;
        }

        @NoArgsConstructor
        @Data
        public static class TopicListDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("title")
            private String title;
            @JsonProperty("subtitle")
            private String subtitle;
            @JsonProperty("price")
            private Integer price;
            @JsonProperty("readCount")
            private String readCount;
            @JsonProperty("picUrl")
            private String picUrl;
        }

        @NoArgsConstructor
        @Data
        public static class FloorGoodsListDTO {
            @JsonProperty("name")
            private String name;
            @JsonProperty("goodsList")
            private List<GoodsListDTO> goodsList;
            @JsonProperty("id")
            private Integer id;

            @NoArgsConstructor
            @Data
            public static class GoodsListDTO {
                @JsonProperty("id")
                private Integer id;
                @JsonProperty("name")
                private String name;
                @JsonProperty("brief")
                private String brief;
                @JsonProperty("picUrl")
                private String picUrl;
                @JsonProperty("isNew")
                private Boolean isNew;
                @JsonProperty("isHot")
                private Boolean isHot;
                @JsonProperty("counterPrice")
                private Integer counterPrice;
                @JsonProperty("retailPrice")
                private Integer retailPrice;
            }
        }
    }
}
